#ifndef __IMA4_PA_DISPLAY_2D_H__
#define __IMA4_PA_DISPLAY_2D_H__
/*
 * Declarations de fonctions utiles pour creer une fenêtre et
 * afficher un contenu
 * Ces fonctions reposent sur la bibliotheque GLUT 
 * (The OpenGL Utility Toolkit) avec laquelle vous
 * devrez faire l'edition de liens
 * 
 * La bibliotheque se nomme naturellement libglut.a
 */

#include <stdlib.h>
#include <stdbool.h>
#include <GL/glut.h>

/*
 * Variables globales
 * scale : echelle de l'affichage
 * display_names : activation de l'affichage des noms de particules
 * funcMaj : fonction de mise a jour
 */
bool display_names;
void (*funcMaj)(void);


/*
 * Fonction a appeler en second dans votre programme,
 * elle permet de creer une fenetre de dimension
 * largeur x hauteur dont le titre est "nom". Le coin
 * inferieur gauche a pour coordonnees (0,0). Le coin
 * superieur droit a pour coordonnees (largeur, hauteur)
 */
void creerFenetre(int largeur, int hauteur, char * nom);

/*
 * Affiche une chaine de caractere dans
 * la fenetre ouverte par GLUT
 */
void displayString (char * string, void * font, float x, float y);

/*
 * Affiche la date passee en parametre dans
 * la fenetre ouverte par GLUT
 */
void displayDate (time_t t, float x, float y);

/*
 * Affiche l'echelle a la position (x,y)
 * Avec une largeur maximum de maxl
 */
void displayScale (float x, float y, float maxl);

/*
 * Affiche les parametres de simulation a la position (x,y)
 */
void displayParameters (float x, float y);

/*
 * Attention, cette fonction est declaree mais n'est pas
 * definie. C'est a vous de definir ce qui doit etre affiche
 * dans la fenetre.
 */
void afficher();

/*
 * Attention, cette fonction est declaree mais n'est pas
 * definie. C'est a vous de definir comment la simulation
 * sera mise a jour entre chaque dt
 */
void miseAJourSimulation();

/*
 * Temps écoulé depuis l'initialisation de GLUT
 * Unité : seconde
 */
double elapsedTime(void);

/* 
 * En resume, votre programme main doit au minimum comporter
 * 
 * initialiserAffichage(&argc, argv);
 * creerFenetre(X, Y, "une chaine de caractere");
 * lancerSimulation();
 *
 * et vous devez definir les fonctions miseAJourSimulation() et afficher()
 *
 */
#endif//__IMA4_PA_DISPLAY_2D_H__
